﻿using System;
using System.Collections.ObjectModel;
using System.Data;
using Entities;

namespace DataAccess
{
    interface IDepartmentDataAccess
    {
        /// <summary>
        /// Inserts the specified department.
        /// </summary>
        /// <param name="department">The department.</param>
        /// <returns></returns>
        int Insert(Department department);
        /// <summary>
        /// Updates the specified department.
        /// </summary>
        /// <param name="department">The department.</param>
        /// <returns></returns>
        int Update(Department department);
        /// <summary>
        /// Gets all.
        /// </summary>
        /// <param name="directorateId">The directorate id.</param>
        /// <param name="include">if set to <c>true</c> [include].</param>
        /// <returns></returns>
        IDataReader GetAll(Guid directorateId,bool include);
        /// <summary>
        /// Changes the status.
        /// </summary>
        /// <param name="departmentId">The department id.</param>
        /// <param name="isactive">if set to <c>true</c> [isactive].</param>
        /// <returns></returns>
        int ChangeStatus(Guid departmentId,bool isactive);
        /// <summary>
        /// Gets the by id.
        /// </summary>
        /// <param name="departmentId">The department id.</param>
        /// <returns></returns>
        IDataReader GetById(Guid departmentId);
        /// <summary>
        /// Gets the name of the different.
        /// </summary>
        /// <param name="departmentId">The department id.</param>
        /// <param name="name">The name.</param>
        /// <returns></returns>
        IDataReader GetDifferentName(Guid departmentId,string name);
    }
}
